Skip to content

webpack 的 tree shaking 是怎么实现的

  • ES6 Module 引入进行静态分析,故而编译的时候正确判断到底加载了那些模块

  • 静态分析程序流,判断那些模块和变量未被使用或者引用,进而删除对应代码

  • 借助 ES6 模块语法的静态结构,通过编译阶段的静态分析,找到没有引入的模块并打上标记,

  • 然后在压缩阶段利用像 uglify-js 这样的压缩工具删除这些没有用到的代码。

在 MIT 许可下发布